#ifndef _USRLIST_H_
#define _USRLIST_H_
//用户信息

#include "boxhead.h"



/*用户信息结构体*/
typedef struct usrNode
{
    char usrName[NAME_LEN];
    char usrPwd[PWD_LEN];
    double usrMoney;
    struct usrNode *pnext;
}usrNode;

/*辅助生成链表*/
typedef struct usrList
{
    int LLen;
    usrNode *pFirstNode;
}usrList;

//发行彩票信息
typedef struct lyNode
{
    int lottery[LOTTERY_LEN];   
    double price;              
    int issue;                 
    char openstatus[10];        
    int sum_num;                
    double sum_mon;           
    struct lyNode *pnext;
}lyNode;

typedef struct lyList
{
    int LLen;
    lyNode *pFirstNode;
}lyList;
//购买彩票信息
typedef struct buyLyNode
{
    int lottery[LOTTERY_LEN];   
    int count;                 
    int issue;                 
    char openstatus[10];
    char player[NAME_LEN];
    struct buyLyNode *pnext;
    double money;
}buyLyNode;

typedef struct buyLyList
{
    int LLen;
    buyLyNode *pFirstNode;
}buyLyList;

/*给结构体usrList申请空间*/
usrList* mkList();

/*给结构体usrNode申请空间*/
usrNode* mkNode();

/*
    头插法生成链表
    输入链表的头与一个节点
    无返回
*/
void myInsert(usrList *list,usrNode *node);

/*
    通过用户名匹配到相应的节点
    输入链表及用户名
    返回匹配的节点
*/
usrNode *findNodeByName(const usrList* list,const char *name);

/*
    删除用户信息节点
    输入节点及表头
    返回表头
*/
usrList * delUsrInfo(usrNode *node,usrList *list);

/*
    用户信息链表释放
    输入表头及节点
    无返回
*/
void releaseUsrList(usrNode *node,usrList *list);

/*
    彩票信息链表释放
    输入表头及节点
    无返回
*/
void releaseLyList(lyNode *node,lyList *list);

/*
    购买信息链表释放
    输入表头及节点
    无返回
*/
void releaseBuyLyList(buyLyNode *node,buyLyList *list);

#endif